package com.mt.mtbusinessmanagementsystem.service;

import com.github.pagehelper.PageInfo;
import com.mt.mtbusinessmanagementsystem.pojo.dto.CustomerDTO;
import com.mt.mtbusinessmanagementsystem.pojo.dto.DeptDTO;
import com.mt.mtbusinessmanagementsystem.pojo.dto.EmployeeDTO;
import com.mt.mtbusinessmanagementsystem.pojo.dto.LoginDTO;
import com.mt.mtbusinessmanagementsystem.pojo.entity.Customer;
import com.mt.mtbusinessmanagementsystem.pojo.entity.Dept;
import com.mt.mtbusinessmanagementsystem.pojo.entity.Employee;
import com.mt.mtbusinessmanagementsystem.pojo.entity.FollowMethod;
import com.mt.mtbusinessmanagementsystem.utils.IsTrue;
import com.mt.mtbusinessmanagementsystem.utils.entry.Entry;
import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;

public interface GeneralService {
    IsTrue<LoginDTO> login(Employee employee);

    IsTrue<String>  addDept(Dept dept);

    IsTrue<String> delDept(Integer deptId);

    Dept updateDept(Dept dept);

    PageInfo<DeptDTO> deptInfoByList(Integer pageNumber, Integer pageSize);

    ArrayList<Employee> employeeByDept(Integer deptId);

    IsTrue<String> addEmployee(EmployeeDTO employeeDTO);

    void putEmployee(Employee employee);

    String putEmployeeHead(String employeeId, MultipartFile headFile);

    PageInfo<EmployeeDTO> queryEmployeeList(EmployeeDTO employeeDTO);

    IsTrue<CustomerDTO> addCustomer(CustomerDTO customerDTO);

    PageInfo<CustomerDTO> queryCustomerList(CustomerDTO customerDTO);

    Entry<Entry<String, ArrayList<CustomerDTO>>, Entry<String, ArrayList<CustomerDTO>>> queryCreateAndResponsibleInfo();

    ArrayList<Employee> employeeByDeptName(String deptName);

    void customerPut(Customer customer);

    IsTrue<CustomerDTO> customerDetailedInfo(CustomerDTO customerDTO);

    IsTrue addFollowMethod(FollowMethod followMethod);

    IsTrue<String> delFollowMethod(Integer followMethodId);

    //IsTrue<String> delCustomer(CustomerDTO customerDTO);
}
